How C++14 and C++17 help to write faster (and better) code. Real world examples
29 August 2016
Writing high performance code is always a difficult task. Pure algorithms are not always a good fit for the real world architectures.
Once having begun to speed up all these pure algorithms, we quickly find that some implementation is pretty fast on one architecture, but terrible slow on another while second implementation outperform the first one in some contexts losing speed in all the rest.
Numerous big and small optimizations for each of supported architectures can quickly bloat our code and waste our time.
Example: FIR filter in C++
14 August 2016
The following example shows how to apply FIR filter to audio data using KFR framework.
#include <kfr/all.hpp> using namespace kfr; int main(int argc, char** argv) { // static array (like std::array) to hold the taps univector<double, 15> taps; // initialize window function // we pass tap count to window_hann function // window_hann does not calculate window functions // but creates object representing hann window expression_pointer<double> hann = to_pointer(window_hann(taps.size())); // FIR filter design using window method // frequency = 0.
Biquad filters in C++ using KFR
25 July 2016
Digital biquad filters and biquad filter design functions are implemented in the KFR framework starting from the first version.
Biquad algorithm uses the Transposed Direct Form II which reduces the quantization errors in the floating point calculations.